<h1><code ng:non-bindable=""></code>
<span class="hint"></span>
</h1>
<div><a href="http://github.com/angular/angular.js/edit/master/docs/content/guide/introduction.ngdoc" class="improve-docs btn btn-primary">Improve this doc</a><p>Angular is pure client-side technology, written entirely in JavaScript. It works with the
long-established technologies of the web (HTML, CSS, and JavaScript) to make the development of
web apps easier and faster than ever before.</p>

<p>One important way that Angular simplifies web development is by increasing the level of abstraction
between the developer and most low-level web app development tasks. Angular automatically takes
care of many of these tasks, including:</p>

<ul>
<li>DOM Manipulation</li>
<li>Setting Up Listeners and Notifiers</li>
<li>Input Validation</li>
</ul>

<p>Because Angular handles much of the work involved in these tasks, developers can concentrate more
on application logic and less on repetitive, error-prone, lower-level coding.</p>

<p>At the same time that Angular simplifies the development of web apps, it brings relatively
sophisticated techniques to the client-side, including:</p>

<ul>
<li>Separation of data, application logic, and presentation components</li>
<li>Data Binding between data and presentation components</li>
<li>Services (common web app operations, implemented as substitutable objects)</li>
<li>Dependency Injection (used primarily for wiring together services)</li>
<li>An extensible HTML compiler (written entirely in JavaScript)</li>
<li>Ease of Testing</li>
</ul>

<p>These techniques have been for the most part absent from the client-side for far too long.</p>

<h3 id="singlepageroundtripapplications">Single-page / Round-trip Applications</h3>

<p>You can use Angular to develop both single-page and round-trip apps, but Angular is designed
primarily for developing single-page apps. Angular supports browser history, forward and back
buttons, and bookmarking in single-page apps.</p>

<p>You normally wouldn't want to load Angular with every page change, as would be the case with using
Angular in a round-trip app. However, it would make sense to do so if you were adding a subset of
Angular's features (for example, templates to leverage angular's data-binding feature) to an
existing round-trip app. You might follow this course of action if you were migrating an older app
to a single-page Angular app.</p></div>
